热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

简写|实线_Python数据科学快速入门系列|06Matplotlib数据可视化基础入门

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python数据科学快速入门系列|06Matplotlib数据可视化基础入门相关的知识,希望对你有一定的参考价值。这

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python数据科学快速入门系列 | 06Matplotlib数据可视化基础入门相关的知识,希望对你有一定的参考价值。


这是机器未来的第52篇文章



原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126899226



《Python数据科学快速入门系列》快速导航:
  • 【Python数据科学快速入门系列 | 01】Numpy初窥——基础概念
  • 【Python数据科学快速入门系列 | 02】创建ndarray对象的十多种方法
  • 【Python数据科学快速入门系列 | 03】玩转数据摘取:Numpy的索引与切片
  • 【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇
  • 【Python数据科学快速入门系列 | 05】常用科学计算函数
  • 【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门



文章目录


  • 《Python数据科学快速入门系列》快速导航:
  • 前言
  • 1. Matplotlib简介
  • 2. Matplotlib的安装
  • 3. Matplotlib的基础使用
    • 3.1 第一个Matplot例子:绘制折线图
    • 3.2 编码风格
    • 3.2 绘图参数详解
      • 3.2.1 Figure画布
      • 3.2.2 Axes绘图区域与Axis坐标轴
      • 3.2.3 输入数据的类型
      • 3.2.4 绘图样式
        • 3.2.4.1 标准表示
        • 3.2.4.2 简写表示








写在开始:


  • 博客简介:专注AIoT领域,追逐未来时代的脉搏,记录路途中的技术成长!
  • 博主社区:AIoT机器智能, 欢迎加入!
  • 专栏简介:从0到1掌握数据科学常用库Numpy、Matploblib、Pandas。
  • 面向人群:AI初级学习者


前言

本文概述了matplotlib是什么,能做什么,怎么做的问题,是一篇matplotlib数据可视化入门文章,对于matplotlib的基础功能做了一个整体的使用说明。包含绘制第一个图表、绘图编程风格、Figure画布、axes绘图区,绘图样式等内容。


1. Matplotlib简介

Matplotlib是一个数据可视化综合绘图库,python三剑客(Numpy、Matplotlib、Pandas)之一,用于创建静态图、动态图和Python中的交互式可视化图像。

只需几行代码就可以生成图表,直方图,功率谱,条形图,误差图,散点图等

说到数据可视化,我们为什么需要数据可视化?

如果将文本数据与图表数据相比较,人类的思维模式更适合于理解后者,原因在于图表数据更加直观且形象化,它对于人类视觉的冲击更强,这种使用图表来表示数据的方法被叫做数据可视化。

举个简单的例子:给你一只股票的分时数据,你认为一行行的数据直观呢,还是K线图直观呢?


2. Matplotlib的安装

有2种主流的安装方式:


  • 第一种直接安装Anaconda就可以自动安装matplotlib库,可以参考博主之前的文章:Python零基础快速入门系列|01】人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)

  • 第二种直接使用命令安装

pip install matplotlib

conda install matplotlib

3. Matplotlib的基础使用

3.1 第一个Matplot例子:绘制折线图

#引入matplotlib.pyplot绘图库
from matplotlib import pyplot as plt
#创建一个只有单个子图的画布
fig,ax=plt.subplots()#Create a figure containing a single axes.
#4个坐标点的坐标分别是(1,1),(2,4),(3,2),(4,3)
ax.plot([1,2,3,4],[1,4,2,3]);#Plot some data on the axes.
plt.show()

可以看到仅仅4行代码就生成了非常好看的折线图,C语言开发工程师已经哭晕…

那么它到底怎么做的呢?


  • 首先创建了一个画布fig
  • 然后创建了一个绘图区域ax(axes),这个绘图区域有2个坐标轴axis,分别在横轴和纵轴。
  • 然后绘图区域对象ax调用了方法plot绘制了4个坐标点,形成折线图。

3.2 编码风格

有人可能注意到我们在网上看到的绘图代码好像不是这样的,直接使用plt就可以绘制了,就像这样:

#引入matplotlib.pyplot绘图库
from matplotlib import pyplot as plt
#4个坐标点的坐标分别是(1,1),(2,4),(3,2),(4,3)
plt.plot([1,2,3,4],[1,4,2,3]);#Plot some data on the axes. b
plt.show()

从结果来看,是一模一样的,好像更方便,仅仅3行代码就可以了。

第二种绘制方法绘制过程如下:


  • 隐式创建一个画布,并创建一个绘图区域
  • 然后绘制4个坐标点,绘制折线图

其实从编码风格来说,第一种是面向对象的编码风格,第二种是pyplot风格:依靠pyplot自动创建和管理图形和轴,并使用pyplot函数进行绘图。

一般来说,我们建议使用OO风格,特别是对于复杂的绘图,以及旨在作为更大项目的一部分重用的函数和脚本。但是,pyplot样式可以非常方便地进行快速交互工作。


3.2 绘图参数详解


from matplotlib import pyplot as plt
#创建2x2四个绘图区域的画布
fig,axs=plt.subplots(2,2)#a figure with a 2x2 grid of Axes
plt.show()




3.2.2 Axes绘图区域与Axis坐标轴

一个画布可以包含多个绘图区域,如上面的例子,一个画布包含4个绘图区域,每个绘图区域由2个(2D)或3个(3D)坐标轴组成。看下面的结构图的直观展示:


3.2.3 输入数据的类型

绘图函数需要 numpy.array 或 numpy.ma.masked_array 作为输入,或者可以传递给 numpy.asarray 的对象转换。

x, y array-like or scalar


3.2.4 绘图样式


3.2.4.1 标准表示


  • color

    支持颜色英文名称和十六进制颜色代码,例如black和#000000

  • linewidth

    浮点类型

  • linestyle


linestyledescription
'-' or 'solid'实线
'--' or 'dashed'杠虚线
'-.' or 'dashdot'点杠虚线
':' or 'dotted'点虚线
'none', 'None', ' ', or ''

  • marker

marker样式非常多,更多样式参考官方文档:https://matplotlib.org/stable/api/markers_api.html#module-matplotlib.markers


markersymboldescription
"."point
","pixel
"o"circle
"v"triangle_down
"^"triangle_up
"<"triangle_left
">"triangle_right
"1"tri_down
"2"tri_up
"3"tri_left
"4"tri_right
"8"octagon
"s"square
"p"pentagon
"P"plus (filled)
"*"star
"h"hexagon1
"H"hexagon2
"&#43;"plus
"x"x
"X"x (filled)
"D"diamond
"d"thin_diamond
"|"vline
"_"hline

"""
曲线样式例子1
"""

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
fig, ax &#61; plt.subplots(figsize&#61;(8, 5))
# 生成0~2π之间的等差数列&#xff0c;数据元素为30个
x &#61; np.linspace(0, 2*np.pi, 30)
y1 &#61; np.cos(x)
y2 &#61; np.sin(x)
y3 &#61; np.cos(2*x)
y4 &#61; np.sin(2*x)
# 绘制余弦曲线&#xff0c;颜色为黑色&#xff0c;线宽3&#xff0c;线样式为杠虚线&#xff0c;点标记为小三角
ax.plot(x, y1, color&#61;&#39;#000000&#39;, linewidth&#61;3, linestyle&#61;&#39;--&#39;, marker&#61;&#39;^&#39;)
# 绘制正弦函数曲线&#xff0c;颜色为橙色&#xff0c;线宽2&#xff0c;点标记为星号
l, &#61; ax.plot(x, y2, color&#61;&#39;orange&#39;, linewidth&#61;2, marker&#61;&#39;*&#39;)
# 单独设置线样式为点虚线
l.set_linestyle(&#39;:&#39;)
# 绘制2x余弦函数曲线&#xff0c;线宽为8&#xff0c;线样式为杠点虚线
ax.plot(x, y3, color&#61;&#39;red&#39;, linewidth&#61;6, linestyle&#61;&#39;-.&#39;)
# 绘制2x正弦函数曲线&#xff0c;颜色为绿色&#xff0c;线宽为1&#xff0c;线样式为实线
ax.plot(x, y4, color&#61;&#39;green&#39;, linewidth&#61;2, linestyle&#61;&#39;-&#39;)
plt.show()




3.2.4.2 简写表示

除了上面的设置方式之外&#xff0c;还有一种简写设置方式。

plot([x], y, [fmt], *, data&#61;None, **kwargs)

fmt &#61; &#39;[marker][line][color]&#39;

fmt &#61; &#39;[color][marker][line]&#39;

fmt的内容本身没有限定顺序&#xff0c;可以自由组合。

line指的是line_style&#xff0c;marker和line_style的取值和上面的表描述是一样的&#xff0c;颜色代码简写表示如下&#xff1a;

颜色

支持的颜色缩写是单字母代码


特点颜色
&#39;b&#39;蓝色的
&#39;g&#39;绿色
&#39;r&#39;红色的
&#39;c&#39;青色
&#39;m&#39;品红
&#39;y&#39;黄色
&#39;k&#39;黑色的
&#39;w&#39;白色的

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 生成0~2π之间的等差数列&#xff0c;数据元素为30个
x &#61; np.linspace(0, 2*np.pi, 30)
y1 &#61; np.cos(x)
y2 &#61; np.sin(x)
y3 &#61; np.cos(2*x)
# g-green,o-cycle圆点标记&#xff0c;--为杠杠虚线&#xff0c;其它样式需要单独指定
plt.plot(x, y1, &#39;go--&#39;, linewidth&#61;2, markersize&#61;6)
# c-青色&#xff0c;^-三角标志&#xff0c;:为点虚线
plt.plot(x, y2, &#39;c^:&#39;, linewidth&#61;2, markersize&#61;3)
# b-blue&#xff0c;*-star标志&#xff0c;-.为杠点虚线
plt.plot(x, y3, &#39;b*-.&#39;, linewidth&#61;2, markersize&#61;3)

[]


未完待续&#xff0c;后续详见下一篇文章&#xff1a;
【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门(二)

— 博主热门专栏推荐 —


  • Python零基础快速入门系列
  • 深入浅出i.MX8企业级开发实战系列
  • MQTT从入门到提高系列
  • 物体检测快速入门系列
  • 自动驾驶模拟器AirSim快速入门
  • 安全利器SELinux入门系列
  • Python数据科学快速入门系列


推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • BugDescriptionWhencategoricalvariablehas ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Inno Setup区段之Components篇相关知识详解
    本文详细介绍了Inno Setup区段之Components篇相关的知识,包括Components和Types的使用方式以及各个参数的说明,希望对读者有一定的参考价值。内容涵盖了ComponentsName、Description、Types、ExtraDiskSpaceRequired、ExtraDiskSpaceRequiredFlags等多个关键词,帮助读者更好地理解和应用Inno Setup区段之Components篇的知识。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
author-avatar
那时候的我和你_173
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有